function err = util_compare_same_T(T1, T2, rows, cols, err_msg_prefix, precision)
    % util_compare_same_T: 比较两个矩阵 T1 和 T2 是否相同，允许一定的精度误差。
    % 输入参数：
    %   T1: 第一个矩阵（rows x cols）。
    %   T2: 第二个矩阵（rows x cols）。
    %   rows: 矩阵的行数。
    %   cols: 矩阵的列数。
    %   err_msg_prefix: 错误信息前缀字符串，用于标识比较的上下文。
    %   precision: 允许的精度误差（浮点数比较的阈值）。
    % 输出参数：
    %   err: 比较结果标志。0 表示两矩阵相同，1 表示不同。

    err = 0; % 初始化错误标志为 0（假设两矩阵相同）

    % 遍历矩阵的每个元素进行比较
    for i = 1:rows
        for j = 1:cols
            % 如果当前元素不相等，则进一步检查差值是否在允许的精度范围内
            if T1(i, j) ~= T2(i, j)
                diff = T1(i, j) - T2(i, j); % 计算差值
                diff = util_close_zero_to_zero(diff, precision); % 将接近零的差值置为零

                % 如果差值仍然不为零，则认为两矩阵不同
                if diff ~= 0
                    err = 1; % 设置错误标志为 1
                end
            end
        end
    end

    % 根据错误标志输出结果
    if err == 1
        % 如果矩阵不同，打印错误信息和两个矩阵的内容
        disp(strcat(err_msg_prefix, ' err!')); % 打印错误信息
        disp('T1'); % 打印 T1 矩阵
        disp(T1);
        disp('T2'); % 打印 T2 矩阵
        disp(T2);
    else
        % 如果矩阵相同，打印成功信息
        disp(strcat(err_msg_prefix, ' ok!'));
    end
end